package com.ruoyi.secondvitim.service.impl;

import java.util.List;

import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.secondvitim.domain.QueForm;
import com.ruoyi.secondvitim.domain.QueFormDetail;
import com.ruoyi.secondvitim.mapper.QueFormMapper;
import com.ruoyi.secondvitim.service.IQueFormService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;

/**
 * 调查问卷名称Service业务层处理
 * 
 * @author alonso_ecit
 * @date 2021-12-17
 */
@Service
public class QueFormServiceImpl implements IQueFormService
{
    @Autowired
    private QueFormMapper queFormMapper;

    /**
     * 查询调查问卷名称
     *
     * @param id 调查问卷名称ID
     * @return 调查问卷名称
     */
    @Override
    public QueForm selectQueFormById(Long id)
    {
        return queFormMapper.selectQueFormById(id);
    }

    /**
     * 查询调查问卷名称列表
     * 
     * @param queForm 调查问卷名称
     * @return 调查问卷名称
     */
    @Override
    public List<QueForm> selectQueFormList(QueForm queForm)
    {
        return queFormMapper.selectQueFormList(queForm);
    }

    /**
     * 新增调查问卷名称
     * 
     * @param queForm 调查问卷名称
     * @return 结果
     */
    @Override
    public int insertQueForm(QueForm queForm)
    {
        queForm.setCreateTime(DateUtils.getNowDate());
        int rows = queFormMapper.insertQueForm(queForm);
        insertQueFormDetail(queForm);
        return rows;
    }

    @Override
    public void changeStatus(QueForm queForm){
        queFormMapper.updateQueForm(queForm);
    }

    /**
     * 修改调查问卷名称
     * 
     * @param queForm 调查问卷名称
     * @return 结果
     */
    @Override
    public int updateQueForm(QueForm queForm)
    {
        queForm.setUpdateTime(DateUtils.getNowDate());
//        queFormMapper.deleteQueFormDetailByFormId(queForm.getId());
//        insertQueFormDetail(queForm);
        return queFormMapper.updateQueForm(queForm);
    }

    /**
     * 删除调查问卷名称对象
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Override
    public int deleteQueFormByIds(Long[] ids)
    {

        queFormMapper.deleteQueFormDetailByFormIds(ids);
        return queFormMapper.deleteQueFormByIds(ids);
    }

    /**
     * 删除调查问卷名称信息
     * 
     * @param id 调查问卷名称ID
     * @return 结果
     */
    @Override
    public int deleteQueFormById(Long id)
    {
        queFormMapper.deleteQueFormDetailByFormId(id);
        return queFormMapper.deleteQueFormById(id);
    }

    /**
     * 新增问卷细项信息
     * 
     * @param queForm 调查问卷名称对象
     */
    public void insertQueFormDetail(QueForm queForm)
    {
        List<QueFormDetail> queFormDetailList = queForm.getQueFormDetailList();
        Long id = queForm.getId();
        if (StringUtils.isNotNull(queFormDetailList))
        {
            List<QueFormDetail> list = new ArrayList<QueFormDetail>();
            for (QueFormDetail queFormDetail : queFormDetailList)
            {
                queFormDetail.setFormId(id);
                list.add(queFormDetail);
            }
            if (list.size() > 0)
            {
                queFormMapper.batchQueFormDetail(list);
            }
        }
    }
}
